You can do this in multiple ways. I would suggest using Ghostscript's ps2write device, this creates a level 2 PostScript program from a PDF file, recent versions allow you to inject specific PostScript at the document or page level.
If you insert <</NumCopies 3>> setpagedevice
at the document level, then a conforming level 2 printer should produce multiple copies of each page.
Complicating the issue is the Collate page device parameter. If the device can handle collating, then this parameter determines whether multiple page copies are delivered as 123, 123, 123 or 111, 222, 333.
Simplest solution is to set it to false, that way if it respects collating then you will get 111, 222, 333. If the device doesn't respect collating then you will still get that ordering.
So, with a very recent version of Ghostscript I believe that:
./gs -sDEVICE=ps2write -sOutputFile=out.ps -sPSDocOptions="<</NumCopies 3 /Collate false>> setpagedevice" <input.pdf>
Will produce a PostScript program which will do what you want.
You could also, for example, use the ps2write device to create one output file per page:
./gs -sDEVICE=ps2write -sOutputFile=out%d.ps
You could then copy each output page the required number of times and cat them into the correct order.