Prism provides guidance for communication between loosely components (like your modules).
One way to fulfill this scenario is to use Shared Services. As documentation shows
"...When the modules are loaded, modules add their services to the service locator. Typically, services are registered and retrieved from a service locator by common interface types. This allows modules to use services provided by other modules without
requiring a static reference to the module. Service instances are shared across modules, so you can share data and pass messages between modules."
You can read more about Shared Services in
Chapter 9: Communicating Between Loosely Coupled Components.
Also you might find useful the following links:
I hope you find this information handy