prueba algo como esto:
CREATE PROCEDURE myProc(IN t1 timestamp, IN t2 timestamp)
BEGIN
WHILE t1 <= t2 DO
INSERT INTO test (ts) Values (t1) ;
SET t1 = DATE_ADD(t1, INTERVAL 3 MINUTE);
END WHILE;
END;
CALL myProc(now(), ADDDATE(NOW(), INTERVAL 15 MINUTE));
http://sqlfiddle.com/#!2/5672e/9
O cambia tu línea:
SET StartTS = StartTS + INTERVAL 3 MINUTE;
a
SET StartTS = ADDDATE(StartTS, INTERVAL 3 MINUTE);