Triggering the search automatically can be done simply by using the onchange event to submit the form: onchange="this.form.submit()"
However that will cause a page refresh and would make doing multiple selections in the three lists very awkward as the page refreshes. The better way to do it is to put the results into a plugin and refresh it with AJAX using the onchange event. This can be done using the same technique as described in the dynamic dropdowns tutorial, you are just refreshing the results instead of a second dropdown: http://www.webassist.com/tutorials/Dynamic-Dropdowns-with-Data-Bridge-2-0
To maintain the values in the select lists, just save their values into session variables or use the persist form server behavior to save their values and pre-populate them with the saved value from the session.