Your query isn't correct. You need to check that lastview is equal to or greater than 3 days from now. Using DAY is just pulling the day value from the datetime value and isn't accurate calculation. The below should work.
Code:
SELECT COUNT(*) FROM `#__comprofiler_views` WHERE `profile_id` = '[user_id]' AND `lastview` >= DATE_SUB( NOW(), INTERVAL 3 DAY ) AND `viewer_id` != 0 LIMIT 30
The above will return the view count for a user as long as the views were logged within the last 3 days from now.