You can gather the post id(s) from the first loop in an array and then use post__not_in arg in the second loop.
$exclude = array();
if ( have_posts() ) : while ( have_posts() ) : the_post();
//first loop
$exclude[] = get_the_ID();
...
//second loop
$second_loop_args = array(
'showposts' => 3,
'post_type' => 'post',
'category_name' => 'Personal', //should make sure you're using category slug here
'post__not_in' => $exclude //this arg needs to be an array, hence moving from string to array format for query_post args
);
query_posts($second_loop_args);
....
**I will say though, that you should reconsider using new WP_Query() for your loops instead of query_posts as detailed here: https://codex.wordpress.org/Class_Reference/WP_Query
It’s basicaly the same, but instead of using query_posts, you just assign a variable your new WP_Query class and loop through it.