Virtual sequences for multiple Agents active at the same time

Hello,
My design has array Agents[0…2] (1 per input Port(each port recieve same transaction)). I am designing a uvm environment where all the 3 Agents drive transaction to all the ports at the same time.

How do I create sequences for the above design?

One thing I can think of is create

class virtual_sequence extends uvm_sequence
task body()
create seq[0],seq[1],seq[2];
fork
seq[0].start(seqr[0]);
seq[1].start(seqr[1]);
seq[2].start(seqr[2]);
join_none

The only concern I have with above implementation is can a single virtual_sequence start 3 sequences on 3 different agent sequencers at the same time

Is there any other way?

Thank you!

In reply to Sumeet Jain:

Of course you can start any number of sequences in parallel in a virtual sequence, using a fork/join.
The question is why you want to use fork/join_none. This cerates 3 dynamic processes and leaves the fork/join_none immediately.