Как то так(код писался по документации и может не работать):
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject
reader = PdfFileReader(open("in.pdf",'rb'))
min_page = reader.getPage(0)
#Большая страница вместит 4 старницы (2x2)
big_page = PageObject.createBlankPage(None, min_page.mediaBox.getWidth()*2, min_page.mediaBox.getHeight()*2)
#mergeScaledTranslatedPage(page2, scale, tx, ty, expand=False)
#https://pythonhosted.org/PyPDF2/PageObject.html
big_page.mergeScaledTranslatedPage(reader.getPage(0), 1, 0, 0)
big_page.mergeScaledTranslatedPage(reader.getPage(1), 1, min_page.mediaBox.getWidth(), 0)
big_page.mergeScaledTranslatedPage(reader.getPage(2), 1, 0, min_page.mediaBox.getHeight())
big_page.mergeScaledTranslatedPage(reader.getPage(3), 1, min_page.mediaBox.getWidth(), min_page.mediaBox.getHeight())
writer = PdfFileWriter()
writer.addPage(big_page)
with open('out.pdf', 'wb') as f:
writer.write(f)