Illustrator is scaling everything including the stroke thickness, used to draw lines and symbols that have been converted to paths, and the font size for any text not converted to a path. (As I don't have Illustrator I can't say whether Illustrator treats "text" as text or as paths when opening the pdf.)
When Adobe Acrobat Reader displays the pdf it is just showing a rasterised view of the current file so just scales everything nicely as you wish.
I see two options; Either create the 2x2 plot directly in R and export that to PDF with the correct dimensions, or reduce the margins and font size used in each plot and export then at the desired width/height using the command you showed.
The first options can be achieved via:
layout(matrix(1:4, ncol = 2, byrow = FALSE)) ## byrow = TRUE for fill-by-row
## all 4 plot calls go in here
You may need to tweak the point size used in the
pdf() device and somewhat adjust the
cex.??? settings for some bits of the plot to tailor this exactly how you want it.
Alternatively, you need to reduce the pointsize and margins and draw each plot on the 3.4 by 3.4 inch device. Something like this will get you started:
pdf("attempt2.pdf", height = 3.4, width = 3.4, pointsize = 10)
op <- par(mar = c(4,3,3,1) + 0.1) ## one line less per marging
## your single plotting call here
?par for the list of ways to control the plot margins & other parameters you might wish to set to control the quality of the final plot. You may wish to look into the
cex.foo parameters to control the relative sizing of the text on the plots, but this is all relative to the base pointsize you set when you create the