Actually, a non compete agreement is completely normal and reasonable as it protects your company from the subcontractors poaching your client. It's usually for a given amount of time.
This also works if your employee leaves and goes off on their own, it doesn't allow them to go poach your...