Especificando a largura do painel ggplot2

Tenho dois ggplots na mesma página e gostaria que seus painéis tivessem a mesma largur

Alguns dados de amostra:

dfr1 <- data.frame(
  time = 1:10,
  value = runif(10)  
)

dfr2 <- data.frame(
  time = 1:10,
  value = runif(10, 1000, 1001)  
)

Uma parcela abaixo da outra:

p1 <- ggplot(dfr1, aes(time, value)) + geom_line()
p2 <- ggplot(dfr2, aes(time, value)) + geom_line()

grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 1)))   
print(p1, vp = viewport(layout.pos.row = 1, layout.pos.col = 1))         
print(p2, vp = viewport(layout.pos.row = 2, layout.pos.col = 1))

Como especifico as larguras e posições do painel em cada plotagem, a fim de fazê-las alinha

(Não quero combinar os gráficos com faceta; não é apropriado no meu exemplo do mundo real.)

questionAnswers(1)

yourAnswerToTheQuestion