Hey John,
The way I would do this is by setting up 1 engagement program, and 3 streams inside of that program.
When someone fills out the form, you could have a data management campaign that populates a field with 'Enrollment date/time'. Use the system token {{system.datetime}}.
Then in your engagement stream, you could set it up to add them to the stream with the series of emails you want in it. Use the Enrollment date/time field to filter which stream people should get placed in.
Stream #1: email 1,2,3
Stream #2: email 2,3
Stream #3: email 3
That would be how I would recommend setting it up.