Try replacing your TwineScript with the following...
<<set $fruits to ["apple","orange","pear"]>>
<<set $vegetables to ["carrot","cabbage","potato"]>>
<<set _count to 0>>
<<set _showFruit to true>>
@@#list;@@
<<link "__Vegetables__">>
<<set _count to 0, _showFruit to false>>
<</link>>
<<silently>>
<<repeat 2s>>
<<if _showFruit>>
<<if _count lt $fruits.length>>
<<append "#list">><<print either($fruits)>><br><</append>>
<<set _count++>>
<<else>>
<<stop>>
<</if>>
<<else>>
<<if _count lt $vegetables.length>>
<<append "#list">><<print either($vegetables)>><br><</append>>
<<set _count++>>
<<else>>
<<stop>>
<</if>>
<</if>>
<</repeat>>
<</silently>>
.. it uses the <<repeat>> macro to create the delay between each of the items being shown, and uses an ID element combined with the <<append>> macro to control where the items appear within the page. A _count temporary variable is used to track how many of a specific category of item has need shown, and the _showFruit temporary variable indicates if the loop should keep displaying Fruit.
Clicking in the link resets the _count variable so that 3 random vegetables will be shown.
warning: because you are using the either() function to randomly obtain an item from the relevant array, it is possible that the same items will be show more than once. If you don't want that to happen then you might want to switch to using the <Array>.pluck() function instead.
This can be done by simply replacing the two <<append>> macro calls in my example with the following two calls.
<<append "#list">><<print $fruits.pluck()>><br><</append>>
<<append "#list">><<print $vegetables.pluck()>><br><</append>>