If they have the same fields, there must be some problem anywhere, since QlikView concatentates implicitly when two orm ore tables in the script have the same number and name of fields (note that QlikView is case sensitive for both field names and values), unless NOCONCATENATE is used.
Anyway, you can force several tables to be concatenated explicitly preceding the second and onwards LOAD keywords with CONCATENATE. However, in this case you cannot use the wildcard in the FROM part:
Table:
LOAD *
FROM File1.qvd (qvd);
CONCATENATE LOAD *
FROM File2.qvd (qvd);
CONCATENATE LOAD *
FROM File3.qvd (qvd);
Are you only loading those three tables? If you script has more tables, it may be one of these what is causing the synthetic keys. QlikView creates a synthetic key whenever two or more tables have two or more fields named alike.