For most non-HP hardware, your discovery will not be 100% complete, so it is easiest just to discover everything on your subnet, and delete the non-HP hardware later. The non-HP servers may show up as "Unknown" or "Unmanaged". You can set up a special collection to find these. I do this to find broken agents and machines that did not discover properly so I can fix them (filter on the attribute of 'Unknown' and 'Unmanaged' for Sytem Type).
To exclude VMs, there is a setting in the discovery options. Just un-check the "Automatically discover VM guest(s) when the host is identified" option.