In your case apps 1,2,3 should have a published Web or Rest service. Published means that the app publishes the webservice and they are available for other applications.
Your 4th application then needs to call the Web or Rest services with a consumed web or rest service call. See also:
Maarten's solution is already what I would do too.
If app4 always needs to have all the data from 1,2 and 3, you could also do it the other way around.
This would be to publish a webservice in app4 where you can post objects from the other apps, and consume this webservice within the other 3 apps when the data changes. In this direction, you can be sure, that all needed data is already there when logging in in app 4.
Publish a Web service or a REST service (API) for your services.
Then Call that webservice A from your 4th app. In that webserviceA call, which is another app, you can do another callsB,C,D, to webservices 1,2,3. Create a ResponseObject A and associate results of different webservices responses B,C,D into Response Object A.Return Response Object A. De-associate Response Object of your webservice call A in your 4th app, process the result set.
There are some webinars about those topics. This could be propably helpful on that topic.