I am modulating and demodulating a signal using built-in ammod and amdemod functions of matlab. Fc is set to 500, when I use Fs=2000, the demodulated signal matches up with the message signal very well.

But when I use Fs=1000.. the demodulated signal appears to be amplified. Why is this happening? Is it because of aliasing as the value of Fs is not properly satisfying the Nyquist Cretierion?
Code is as follows:
clc
clear all
close all
pkg load communications
Fc=500; %Defining parameters for carrier frequency
Fs=1000; %Defining parameters for sampling rate
Ts=1/Fs; %Defining sampling period
Tc=1/Fc;
t=0:Ts:1.0239; %%Defining time scale
t2=0:Tc:12;
%%Step 2- Generating the Message an d Carrier Signal
x=3*cos(50*pi*t)-sin(10*pi*t); %%Defining Message signal
Ac=1; %Amplitude of the Carrier Signal
ct=Ac*cos(500*pi*t2); %%carrier signal
%x=x(1:2000);%limiting x to 2000 samples
%%Step 3 - Generating the AM-Signal
x_am = ammod(x,Fc,Fs);
%%Step 4 - Demodulating the AM-Signal
x_dem =amdemod(x_am,Fc,Fs);

The sampling frequency should be higher than 2*(Fc+BW) to fulfil Nyquist criterion, as you said.