Select can be filled dynamically using jQuery/Ajax How to change options of <select> with jQuery?
For advance taxonomy queries check this https://code.tutsplus.com/tutorials/wp_query-arguments-taxonomies--cms-23090
For generating drop-down for specialty:
$terms = get_terms( array(
'taxonomy' => 'specialty',
'hide_empty' => false,
) );
This will output array which you can use to generate select.
More info about function and its parameters:
https://developer.wordpress.org/reference/functions/get_terms/
For generating drop-down for doctor with select specialty
$args = array(
'post_type' => 'doctor',
'tax_query' => array(
array(
'taxonomy' => 'specialty',
'field' => 'slug',
'terms' => 'eye',
),
),
);
$query = new WP_Query( $args );
This will output array which you can use to generate select.
More info about function and its parameters:
https://codex.wordpress.org/Class_Reference/WP_Query
For 3rd Drop-down:
Not clear