The concept is that you have queried WP for a defined number of posts, so you can presume you have a total or 3 posts returned thanks to 'posts_per_page' => 3,
— remember, this might not be true, is there are not enough posts or other parts of the query reduce this number, perhaps because of the wrong category ID.
Here is some pseudo-code to show how you can affect the markup used for each post you render, using the loop ( the rest of your code would still be required ):
// track post loops ##
$loop = 0;
while ($my_query->have_posts()) : $my_query->the_post();
switch( $loop ) {
case 0: // $loop = 0
?>
<h4>Loop One:<?php the_title(); ?></h4>
<?php
break;
case 1: // $loop == 1 etc..
default: // works for all other values not defined in switch cases..
?>
<h4>Loop Two:<?php the_title(); ?></h4>
<?php
break;
}
// iterate post loop count ##
$loop ++;
endwhile;