Sorry - I've been AFK here for a bit. My apologies for this going unanswered for so long.
Your code seems fine (except your second <p> should be a </p>). It's not the code that gets you listed as a snippet, though. Most of that is determined by your site's "authority". Without that, all the best markup in the world won't get you a snippet.
So... how do you get authority? This is a hotly debated question in SEO. Ultimately it comes down to whether your site is actually an authority on its given subject, industry, or whatever it is about. You want to have a lot of pages and content that answers all kinds of questions. You also want other sites to link to those pages as contextual references on the subject. And you also want to link out to other sites that may provide more information on the subject than you are providing.
Think of it as sort of a term paper that you had to write for school. Your outbound links are the "references" that help prove you know what you're talking about. The inbound links are the people who are referring to your term paper as a reference for their own point. And of course, the copy itself is the point you're trying to make. Do that - again and again with all kinds of information and eventually you'll be considered an authority and Google might start to put your snippets up there.
There's a lot more to it, of course, but that's the basic idea of building authority on the web.
In looking at the specific term "what is a snagging inspection?" - I can see your competitor's snippet up there. One thing you have going for you is that Google has it wrong. It's using the description of the company as a definition, and not an actual definition of what a snagging inspection is. This is good news because Google wants to get things right. If you can build up a little authority for your site, it should be easy to jump in and take that spot - relatively speaking, anyway.