Change front-page layout after x amount of posts ( while in the same loop)

First of all you don’t need any custom counter ($count variable) to achieve this. WP_Query already has such counter:

$current_post (available during The Loop) Index of the post currently
being displayed.

and you can use it.

And back to your code… Your main problem is that you don’t use any conditions inside while loop, but add them after the loop, so they don’t do anything.

And here’s how it should look like:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$query = new WP_Query( 
    array(
        'posts_per_page' => 7,
        'paged' => $paged
    ) 
);

   if ( $query->have_posts() ) : // if there are any posts found ?>    
    <div><!-- section 1 -->
        <?php while ( $query->have_posts() && $query->current_post < 3 ) : $query->the_post(); ?> 
        // put layout 1 here 
        <?php endwhile; ?>
    </div>
<?php endif; ?>

<?php if ( $query->have_posts() ) : // if there are enough posts for section 2 ?>
    <div><!-- section 2 -->
        <?php while ( $query->have_posts() && $query->current_post < 6 ) : $query->the_post(); ?>
        // put layout 2 here 
        <?php endwhile; ?>        
    </div>
<?php endif; ?>

<?php if ( $query->have_posts() ) : // if there are enough posts for section 3 ?>
    <div><!-- section 3 -->
        <?php while ( $query->have_posts() ) : $query->the_post(); ?>
        // put layout 3 here 
        <?php endwhile; ?>        
    </div>
<?php endif; ?>