Hi,
Calling sub workflow will solve, but it will be extra load on system as parent workflow already will be there in the system after calling child workflow.
Better you take a loop step, you put your Decision 1 , 2 and 3 step in the loop. If anytime any step it is rejected, then in your Reject outcome add cotainer step set your custome container element suppose STATUS = 1. Then before Decision Step 2 and 3 , Add a condition step if STATUS = 1 , Then don't process.
Then at the end in the Loop Until check if STATUS = 1, then it will go to begining. And if all step will approve then STATUS = 0. Means you get out of lopp and your worklfow complete.
w