The basic idea is this, all you have to do is to automate the process and cover more dataframes.
df1 = data.frame(x1=runif(5,0,5), x2=runif(5,5,10), x3=runif(5,0,5), x4=runif(5,10,15))
df2 = data.frame(x1=runif(5,0,5), x2=runif(5,5,10), x4=runif(5,10,15))
df3 = data.frame(x2=runif(5,0,5), x3=runif(5,5,10), x4=runif(5,10,15))
idem_cols <- intersect(intersect(colnames(df1), colnames(df2)), colnames(df3))
> df1[idem_cols]
# x2 x4
#1 6.393069 12.99105
#2 7.016564 12.57616
#3 9.451348 11.62159
#4 5.728012 11.23728
#5 8.795608 13.79248
> df2[idem_cols]
# x2 x4
#1 9.489572 12.21699
#2 7.423554 11.57359
#3 5.058671 10.75123
#4 9.319093 10.00097
#5 5.620968 14.91703
> df3[idem_cols]
# x2 x4
#1 2.5554488 13.83610
#2 4.4639556 10.05555
#3 4.1599600 14.10665
#4 0.4610773 10.21153
#5 2.9923365 14.80820