Possible to buy Atmega328p with programmed Flash and EEPROM?
In my experience, this has only economical for gigantic production runs; the cost of this value-add service can be high (I've been quoted a multiple of the price of each controller.) Consider the cost of the service vs. how much it costs for 30-60 seconds of labour on the production line to program the board and go for what makes the most economic sense.
It's often easy enough to add some circular copper pads on the board and use a pogo-pin fixture to program the micro as part of the board's assembly process. This allows for much more flexibility - imagine what might happen if you need a firmware update and you have 100000 pre-programmed parts in stock. If you don't have programming pins on your board, you'd need to ship'em all back and get them unpackaged/reprogrammed/repackaged. (Also, every time a part is handled there's a risk of ESD or other damage -yields may be affected)
If you really must go with pre-programmed, consider having the supplier only program a bootloader into the controller, and do the programming as part of your product test suite. This still allows you to control and update firmware as needed. Once the bootloader is working, it's rare to ever need to update it so it's much safer to pre-program that part of the software.
At my workplace we produce many controller boards with multiple microcontrollers and we always go with the post-assembly pin-programming option. Any EEPROM programming is taken care of during functional test. The cost of doing it at our CM is much cheaper than pre-programming; also, because we use the microcontrollers in multiple projects we would need a unique P/N for each micro + firmware combination in order for the CM to not get mixed up - that would be a logistical nightmare.