You can use theme(plot.margin)
function in ggplot2 to reduce the spacing.
A simple working example here :
library(grid)
library(gridExtra)
library(ggplot2)
x <- seq(1,10,1)
y <- dnorm(x,mean=10,sd=0.5)
# Create p1
p1 <- qplot(x,y) + theme(plot.margin=unit(c(1,1,-0.5,1),"cm"))
# Create p2
p2 <- qplot(x,y) + theme(plot.margin=unit(c(-0.5,1,1,1),"cm"))
grid.arrange(p1,p2)
Edit
The four numbers are c(bottom,left,top,right)
Sample output