Your triggeroncarried string should cause the spawner to trigger only if they are carrying all three of the keys, which sounds like what you want. You dont really need to add the 'item' type argument, since anything carried is necessarily going to be an item. It doesnt hurt, it just isnt necessary.
To assign a subgroup to an entry, first open the extended spawner gump by pressing the little right arrow button in the lower right corner of the main spawner gump.
Enter a subgroup number into the Sub column next to the entry.

In this case, the actual number you assign wont matter. It only matters if you use sequential spawning in which the subgroups are spawned in ascending numerical order.
When you assign different spawn entries the same subgroup number, you will see that they all turn the same color. This means that they will be spawned together.
When the spawner tries to spawn something, it will randomly pick a subgroup number (if you have multiple subgroups) and then spawn everything in that subgroup in the order that they are listed in the gump.