The answer is no. However, as you saw in the link you posted, there is grid.arrange::gridExtra. Another option is to use something that's originally from the ggplot2 book (I think that's the source, but examples abound on the internet)
p1 <- ggplot(diamonds, aes(depth, carat)) + geom_point()
p2 <- ggplot(diamonds, aes(price, carat)) + geom_point()
vplayout <- function(x, y) viewport(layout.pos.row=x, layout.pos.col=y)
grid.newpage()
pushViewport(viewport(layout=grid.layout(4,6)))
print(p1,vp=vplayout(1:4,1:3))
print(p2,vp=vplayout(1:4,4:6))
This setup essentially plots a "dashboard". And you can control each plot individually, yet, keep them "beside eachother in any arrangement that you feel reasonable by changing the squares they fill (mess with the numbers 4, 6, 1:4, 1:3, 4:6)