Are you doing a many-to-many merge?
If not then just use normal SAS code instead of SQL and then you can use variable lists in many places.
For this example you can probably just use a KEEP= option on the RS2 input dataset in either SQL or normal code.
data adms_4;
merge adms_3(in=in_a) RS2 (keep=admission_id referer_source_: );
by ADMISSION_ID;
if in_a;
run;
In SQL you might want to also rename the duplicate ADMISSION_ID column so that you can use * in your column list without getting warnings/notes about duplicate names. You can then DROP it from the output dataset.
create table adms_4(drop=id_B) as
select *
from adms_3 a
left join RS2(keep=admission_id referer_source_: rename=(admission_id=id_B)) b
on a.ADMISSION_ID = b.id_B
;