If I execute the code you've posted then first Error message I get is:
NOTE: The SAS System stopped processing this step because of errors.
30 (keep = M_Ht_In BMI PWgt_R DWgt_R RF_PDIAB RF_GDIAB RF_PHYPE RF_GHYPE RF_EHYPE RF_PPTERM RF_CESAR
31 ME_PRES ATTEND PAY_REC APGAR5 APGAR10 AB_NICU BFED priorlive priordead mrace6 frace6 dplural OEGest_R3
32 SEX MAGER **bleep**ECOMB MEDUC FEDUC PREVIS_REC previs CIG_REC WTGAIN DMETH_REC dbwt)
__ __
214 214
23 23
ERROR 214-322: Variable name ** is not valid.
ERROR 23-7: Invalid value for the KEEP option.
Some of the variable names in your keep list don't exist as column headers in the Excel file plus even if they would the names are not valid (...and if you ever get such invalid names you need to quote them as literals in the form 'invalid name'n ).
I'd also remove the options in your code as the log messages you suppress here are actually useful.
And last but not least:
Proc Import will create SAS variables based on analysing the source data. Even if the column names in the 3 source .csv are the same the 3 Proc Imports will likely create the variables with different attributes - like different lengths - based on the actual data in the .csv.
When you now use a data step to combine the tree tables then the variable definition from the first data set in the set statement will be used. If the length of the variable is shorter than required for the same named variable in the 2nd or 3rd input data set then there will be string truncation.
The safer - and better way - is to not use Proc Import but a data step where you explicitly define the variables.
To make things easier for you: Use Proc Import (code like below). Then go to the SAS log and copy the generated data step, amend as required and then use this data step instead of Proc Import for your final code. IF the structure of the 3 .csv's are the same then you can use the same data step code for all of your csv's.