Please refer the below blog to avoid adding a SP activity at the end of each activity but you can use a combination of dependencies across each activities and compare whether there is any error and log accordingly.
That is how you can capture all error messages across all activities.
If you want to avoid that, you can call your pipeline from another pipeline and add that SP post the execute pipeline activity.