Subset the data frame before calling ggplot, and then use aes_string to call column names as string.
library(ggplot2)
l <- list()
for(i in 2:11){
temp <- mtcars[, c(1, i)]
p <- ggplot(temp, aes_string(x = "mpg", y = names(temp)[2])) + geom_smooth() + geom_point()
name <- paste("p",i,sep="_")
tmp <- list(p)
l[[name]] <- tmp
}
print(l$p_2)
print(l$p_3)