Joining program to one batch file

I created a batch file (./mybatch) that need to run few programs
at a sequnece but i need a command like the DOS call command in order
to return to the main batch file to proceed the sequence

example:

cd /dir1/path/dir2
invoke program1
cd /dir3/path2/ <--- i want to return here

Assume you have the "programs" p1, p1, p3

cd path1
nohup p1 > p1.log &
cd path2
nohup p2 > p2.log &
cd path3
nohup p3 > p3.log
wait

At least this is what I think you are asking.

Thanks for the answer !

I understand that you run the programs at bg but why do you write
them as files ?
why the last one is not at bg? :confused:
And why is the wait instruction at the end ?