You should put the common functionality in a single BPEL process and then the other two BPEL process can call the first BPEL using Direct Binding. It's better to have all the complex logic in one process and use it as a service from other processes. You should also look into purging these instances on daily or weekly basis.
The suggestion made by Sid seems a good option in case you use BPEL.
IMHO I would only suggest to do not generate audit data in case you don't need to track your instances: better than do the purge is do not generate the information to be purged.
But other suggestion is use OSB instead of BPEL. Have you considered this?
I believe with OSB you can have a better performance and control over the process and throughput, since the processing volume is high.